home *** CD-ROM | disk | FTP | other *** search
- #ifndef OS_H
- #define OS_H
- /*
- **
- ** $Id: os.h,v 1.876 1996/08/13 03:11:08 chris Exp $
- ** $Revision: 1.876 $
- **
- ** $Filename: include/os.h $
- ** $Author: chris $
- ** $Date: 1996/08/13 03:11:08 $
- ** $Portability: AMIGADOS $
- **
- ** Bindet die entsprechende OS-abhängige Headerdatei ein. Diese Datei
- ** MUSS von ALLEN Modulen als erstes eingebunden werden, noch vor
- ** etwaigen #ifdefs.
- **
- ** THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF RELOG AG.
- **
- ** COPYRIGHT (C) 1992-1996 BY RELOG AG, ZUERICH. ALL RIGHTS RESERVED.
- ** NO PART OF THIS SOFTWARE MAY BE COPIED, REPRODUCED, OR TRANSMITTED
- ** IN ANY FORM OR BY ANY MEANS, WITHOUT THE PRIOR WRITTEN PERMISSION
- ** OF RELOG AG.
- **
- */
-
- #include <exec/types.h>
- #include <proto/exec.h>
-
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
-
-
- /*
- ** Datentypen
- */
-
- #ifndef FAR
- #define FAR /* Far-Attribut */
- #endif
-
- /* Aus exec/types.h:
- typedef void VOID;
- typedef unsigned short BOOL;
- define TRUE 1
- define FALSE 0
- */
-
- typedef signed char S8; /* 8 bit mit Vorzeichen */
- typedef unsigned char U8; /* 8 bit ohne Vorzeichen */
- typedef signed short S16; /* 16 bit mit Vorzeichen */
- typedef unsigned short U16; /* 8 bit ohne Vorzeichen */
- typedef signed long S32; /* 32 bit mit Vorzeichen */
- typedef unsigned long U32; /* 32 bit ohne Vorzeichen */
-
- typedef unsigned char *LPBYTE; /* Pointer to application memory */
- typedef VOID *LPVOID; /* Far pointer to void */
-
- typedef VOID (*CSS_CALLBACK)( U16, U32 );
-
-
- #ifndef NULL
- #define NULL ((VOID *)0L)
- #endif
-
-
- #ifndef GET_U16
- #define GET_U16(a) (*(U16 *)(a))
- #endif
-
-
- /****************************************************************************
- ** Lists and nodes
- */
-
- typedef struct _Node
- {
- struct _Node *Succ;
- struct _Node *Pred;
- } IC_NODE;
-
-
- typedef struct
- {
- IC_NODE *Head;
- IC_NODE *Tail;
- IC_NODE *TailPred;
- } IC_LIST;
-
- #define NEW_LIST(l) IC_LIST l = { (VOID *)&l.Tail, NULL, (VOID *)&l.Head }
-
- #define DOLIST(list, node) \
- for (node=(VOID *)(list)->Head; ((IC_NODE *)(node))->Succ; \
- (node) = (VOID *)(((IC_NODE *)(node))->Succ))
-
- #define ISLISTEMPTY(l) (((l)->TailPred) == (IC_NODE *)(l))
- #define NEWLIST(l) {(l)->Head = (IC_NODE *)&(l)->Tail; (l)->Tail = NULL; (l)->TailPred = (IC_NODE *)&(l)->Head; }
- #define ADDHEAD(l,n) {IC_NODE *_s=(l)->Head; (l)->Head=(n); (n)->Succ=_s; (n)->Pred=(IC_NODE *)&(l)->Head; _s->Pred=(n);}
- #define ADDTAIL(l,n) {IC_NODE *_p=(l)->TailPred; (l)->TailPred=(n); (n)->Succ=(IC_NODE *)&(l)->Tail; (n)->Pred=_p; _p->Succ=(n);}
- #define REMOVE(n) {IC_NODE *_s=(n)->Succ, *_p=(n)->Pred; _p->Succ=_s; _s->Pred=_p;}
-
-
- #endif /* OS_H */
-
-